package com.ruoyi.customer.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户认领跟进对象 erp_customer_info
 * 
 * @author ruoyi
 * @date 2025-07-29
 */
public class ErpCustomerInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 来源（0拓客来源/1个人来源） */
    @Excel(name = "来源", readConverterExp = "0=拓客来源/1个人来源")
    private Long source;

    /** 认领日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "认领日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date claimDate;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 其他联络方式，如：qq、微信 */
    @Excel(name = "其他联络方式，如：qq、微信")
    private String otherContact;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 认领人 */
    @Excel(name = "认领人")
    private String claimPerson;

    /** 认领状态:0已认领、1未认领 */
    @Excel(name = "认领状态:0已认领、1未认领")
    private Long claimStatus;

    /** 跟进状态 */
    @Excel(name = "跟进状态")
    private Long followStatus;

    /** 跟进天数 */
    @Excel(name = "跟进天数")
    private Long followDays;

    /** 操作日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operationDate;

    /** 客户分类 */
    @Excel(name = "客户分类")
    private String customerClass;

    /** 项目紧急程度 */
    @Excel(name = "项目紧急程度")
    private String urgencyLevel;

    /** 所在-省 */
    @Excel(name = "所在-省")
    private String province;

    /** 所在-市 */
    @Excel(name = "所在-市")
    private String city;

    /** 行业 */
    @Excel(name = "行业")
    private String industry;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Long getSource() {
        return source;
    }

    public void setSource(Long source) {
        this.source = source;
    }

    public void setClaimDate(Date claimDate)
    {
        this.claimDate = claimDate;
    }

    public Date getClaimDate() 
    {
        return claimDate;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setOtherContact(String otherContact) 
    {
        this.otherContact = otherContact;
    }

    public String getOtherContact() 
    {
        return otherContact;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setClaimPerson(String claimPerson) 
    {
        this.claimPerson = claimPerson;
    }

    public String getClaimPerson() 
    {
        return claimPerson;
    }

    public void setClaimStatus(Long claimStatus) 
    {
        this.claimStatus = claimStatus;
    }

    public Long getClaimStatus() 
    {
        return claimStatus;
    }

    public void setFollowStatus(Long followStatus) 
    {
        this.followStatus = followStatus;
    }

    public Long getFollowStatus() 
    {
        return followStatus;
    }

    public void setFollowDays(Long followDays) 
    {
        this.followDays = followDays;
    }

    public Long getFollowDays() 
    {
        return followDays;
    }

    public void setOperationDate(Date operationDate) 
    {
        this.operationDate = operationDate;
    }

    public Date getOperationDate() 
    {
        return operationDate;
    }

    public void setCustomerClass(String customerClass) 
    {
        this.customerClass = customerClass;
    }

    public String getCustomerClass() 
    {
        return customerClass;
    }

    public void setUrgencyLevel(String urgencyLevel) 
    {
        this.urgencyLevel = urgencyLevel;
    }

    public String getUrgencyLevel() 
    {
        return urgencyLevel;
    }

    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }

    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }

    public void setIndustry(String industry) 
    {
        this.industry = industry;
    }

    public String getIndustry() 
    {
        return industry;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("source", getSource())
            .append("claimDate", getClaimDate())
            .append("customerName", getCustomerName())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("otherContact", getOtherContact())
            .append("address", getAddress())
            .append("claimPerson", getClaimPerson())
            .append("claimStatus", getClaimStatus())
            .append("followStatus", getFollowStatus())
            .append("followDays", getFollowDays())
            .append("operationDate", getOperationDate())
            .append("customerClass", getCustomerClass())
            .append("urgencyLevel", getUrgencyLevel())
            .append("province", getProvince())
            .append("city", getCity())
            .append("industry", getIndustry())
            .append("remark", getRemark())
            .toString();
    }
}
